<th:block th:replace="module/gikam/home"/>
<script src="https://sf3-cn.feishucdn.com/obj/feishu-static/lark/passport/qrcode/LarkSSOSDKWebQRCode-1.0.2.js"></script>

<script th:inline="javascript">

    var getPageConfig = function () {
        var xmlHttp = null;
        //创建 XMLHttpRequest 对象，老版本的 Internet Explorer （IE5 和 IE6）使用 ActiveX 对象：xmlhttp=new ActiveXObject("Microsoft.XMLHTTP")
        if (window.XMLHttpRequest) {
            //code for all new browsers
            xmlHttp = new XMLHttpRequest
        } else if (window.ActiveXObject) {
            //code for IE5 and IE6
            xmlHttp = new ActiveXObject("Microsoft.XMLHTTP")
        }
        //判断是否支持请求
        if (xmlHttp == null) {
            alert("浏览器不支持xmlHttp")
            return
        }

        //onreadystatechange 是一个事件句柄。它的值 (state_Change) 是一个函数的名称，当 XMLHttpRequest 对象的状态发生改变时，会触发此函数。状态从 0 (uninitialized) 到 4 (complete) 进行变化。仅在状态为 4 时，我们才执行代码
        xmlHttp.onreadystatechange = function () {
            //complete
            if (xmlHttp.readyState === 4) {
                if (xmlHttp.status === 200) {
                    //请求成功执行的回调函数
                    var req = JSON.parse(xmlHttp.responseText)
                    console.log(req)
                    configBean = req
                } else {
                    //请求失败的回调函数
                }
            }
        }
        var url = IFM_CONTEXT + '/open/basemodule/basedata/pageconfigs' + '/get-config/1'
        xmlHttp.open("GET", url, false)
        xmlHttp.send(null)
        return configBean
    }

    let configBean = {}
    let title = 'SYSTEM.TITLE'
    let logoUrl = IFM_CONTEXT + '/static/gikam/main/img/gikam.ico'
    configBean = getPageConfig()
    if (configBean.logoUrl) {
        logoUrl = configBean.logoUrl
    }
    if (!window.localStorage.locale || window.localStorage.locale === 'zh-CN' || window.localStorage.locale === 'zh-cn') {
        if (configBean.title) {
            title = configBean.title
        }
    } else {
        if (configBean.enTitle) {
            title = configBean.enTitle
        }
    }

    if (logoUrl) {
        new IndexPage({
            system: title,
            title: title,
            xIconUrl: IFM_CONTEXT + '/static/gikam/main/img/gikam.ico',
            logo: logoUrl,
            userRemember : true,
            nativePassword : true
        });
    } else {
        new IndexPage({
            system: title,
            title: title,
            xIconUrl: IFM_CONTEXT + '/static/gikam/main/img/gikam.ico',
            userRemember : true,
            nativePassword : true
        });
    }

    window.onload = function () {
        setTimeout(() => {
            setQRCode()
        }, 500)
    }

    var setQRCode = function () {
        var xmlHttp = null;
        //创建 XMLHttpRequest 对象，老版本的 Internet Explorer （IE5 和 IE6）使用 ActiveX 对象：xmlhttp=new ActiveXObject("Microsoft.XMLHTTP")
        if (window.XMLHttpRequest) {
            //code for all new browsers
            xmlHttp = new XMLHttpRequest
        } else if (window.ActiveXObject) {
            //code for IE5 and IE6
            xmlHttp = new ActiveXObject("Microsoft.XMLHTTP")
        }
        //判断是否支持请求
        if (xmlHttp == null) {
            alert("浏览器不支持xmlHttp")
            return
        }
        //onreadystatechange 是一个事件句柄。它的值 (state_Change) 是一个函数的名称，当 XMLHttpRequest 对象的状态发生改变时，会触发此函数。状态从 0 (uninitialized) 到 4 (complete) 进行变化。仅在状态为 4 时，我们才执行代码
        xmlHttp.onreadystatechange = function () {
            //complete
            if (xmlHttp.readyState === 4) {
                if (xmlHttp.status === 200) {
                    //请求成功执行的回调函数
                    var req = JSON.parse(xmlHttp.responseText)
                    console.log(req)
                    var QRLoginObj = window.QRLogin({
                        id: "qrcodeImg",
                        goto: req.goto,
                        width: "260",
                        height: "260",
                        style: "maxWidth:250px;maxHeight:250px;"//可选的，二维码html标签的style属性
                    });

                    var handleMessage = function (event) {
                        var goto = req.goto
                        var origin = event.origin;
                        // 使用 matchOrigin 方法来判断 message 来自页面的url是否合法
                        if (QRLoginObj.matchOrigin(origin)) {
                            var loginTmpCode = event.data;
                            // 在授权页面地址上拼接上参数 tmp_code，并跳转
                            window.location.href = `${goto}&tmp_code=${loginTmpCode}`;
                        }
                    };
                    if (typeof window.addEventListener != 'undefined') {
                        window.addEventListener('message', handleMessage, false);
                    } else if (typeof window.attachEvent != 'undefined') {
                        window.attachEvent('onmessage', handleMessage);
                    }
                } else {

                    //请求失败的回调函数
                }
            }
        }
        var url = IFM_CONTEXT + '/feishu/feishu-login-config'
        xmlHttp.open("GET", url, true)
        xmlHttp.send(null)
    }
    /*]]>*/
</script>
